home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / earcd / ppaint64 / rexx / framestoanim.pprx < prev    next >
Text File  |  1995-09-16  |  2KB  |  100 lines

  1. /* PPaint Amiga Rexx script - Copyright © 1995 Cloanto Italia srl */
  2.  
  3. /*
  4.   $VER: FramesToAnim.pprx 1.1
  5. */
  6.  
  7.  
  8. MYPORT = 'PPAINT'
  9.  
  10. IF ~SHOW('P', MYPORT) THEN DO
  11.     IF EXISTS('PPaint:PPaint') THEN DO
  12.         ADDRESS COMMAND 'Run >NIL: PPaint:PPaint'
  13.         DO 30 WHILE ~SHOW('P',MYPORT)
  14.              ADDRESS COMMAND 'Wait >NIL: 1 SEC'
  15.         END
  16.     END
  17.     ELSE DO
  18.         SAY "Personal Paint could not be loaded."
  19.         EXIT 10
  20.     END
  21. END
  22.  
  23. IF ~SHOW('P', MYPORT) THEN DO
  24.     SAY 'Personal Paint Rexx port could not be opened.'
  25.     EXIT 10
  26. END
  27.  
  28. ADDRESS VALUE MYPORT
  29. OPTIONS RESULTS
  30. OPTIONS FAILAT 10000
  31.  
  32. Version 'REXX'
  33. rexxversion = RESULT
  34. IF rexxversion < 3 THEN DO
  35.     errmess = 'This script requires a newer_version of Personal Paint.'
  36.     SAY errmess
  37.     RequestNotify 'PROMPT="'errmess'"'
  38.     EXIT 10
  39. END
  40.  
  41. IF rexxversion < 4 THEN DO
  42.     FreeBrush
  43.     IF RC ~= 0 THEN EXIT
  44.     bshfname = 'T:pprx_bsh.'PRAGMA('ID')
  45.     IF OPEN(bshfile, bshfname, 'W') THEN DO
  46.         WRITECH(bshfile, '464F524D 0000002A 494C424D 424D4844 00000014 00010001 00000000 01020100 00001010 028001E0 424F4459 00000002 FF00'X)
  47.         CALL CLOSE(bshfile)
  48.         LoadBrush bshfname FORCE
  49.     END
  50. END
  51.  
  52. LockGUI
  53. RequestFile '"Select First Frame of Sequence"'
  54. IF RC = 0 THEN DO
  55.     loadname = RESULT
  56.     pos = LASTPOS('.', loadname)
  57.     len = LENGTH(loadname)
  58.     errcode = 0
  59.     IF pos = 0 THEN DO
  60.         errmess = 'Invalid frame name'
  61.         errcode = 1000
  62.     END
  63.     ELSE DO
  64.         name = SUBSTR(loadname, 2, pos - 2)
  65.         digits = len - pos - 1
  66.         fnum = SUBSTR(loadname, pos + 1, digits)
  67.     END
  68.     IF errcode = 0 THEN DO
  69.         DO FOREVER
  70.             AddFrames        /* add one frame */
  71.             SetFramePos NEXT
  72.             fname = name || "." || RIGHT(fnum, digits, "0");
  73.             LoadImage '"'fname'"' FORCE QUIET
  74.             IF RC ~= 0 THEN DO
  75.                 IF RC = 5 THEN
  76.                     errmess = 'User abort during load.'
  77.                 ELSE IF RC ~= 36 THEN
  78.                     errmess = 'Error 'RC' during load.'
  79.  
  80.                 IF RC ~= 36 THEN errcode = RC
  81.  
  82.                 DelFrames    /* delete current (unused) frame */
  83.                 OptimizeAnim QUIET
  84.                 LEAVE
  85.             END
  86.             fnum = fnum + 1
  87.         END
  88.     END
  89.     IF errcode > 0 THEN DO
  90.         SAY errmess
  91.         RequestNotify 'PROMPT="'errmess'"'
  92.     END
  93. END
  94. UnlockGUI
  95.  
  96. IF rexxversion < 4 THEN DO
  97.     FreeBrush FORCE
  98.     ADDRESS COMMAND 'Delete >NIL: 'bshfname
  99. END
  100.